As it is generally known, the term “bookmarks” has been used to refer to pointers, primarily URLs (“Uniform Resource Locators”), that are stored by Web browser programs for the convenience of the local user. The primary purpose of these user-specific, locally stored and used bookmarks has been to catalog and provide access to Web pages that the local user has visited or plans to visit, without requiring the user to remember their URLs.
More recently, technologies providing “social bookmarking” have been introduced. In social bookmarking systems, social bookmarks are shared with multiple users over the Internet. In a social bookmarking system, users store lists of links to Internet resources that they find useful or interesting. These resource lists are accessible to other users, e.g. to the general public or to a network of related users. Social bookmarking system users are able to rate and categorize resources using informally assigned, user-defined keywords or tags to create a “folksonomy”. The folksonomy provides aggregate page ratings across multiple users, and relates users that have tagged the same page. Most social bookmarking services allow users to search for social bookmarks based on tags, and rank resources by the number of users that have socially bookmarked them.
Many popular social bookmarking systems rely on Web applications using what is referred to as a representational state transfer (REST) architectural style for resource identification, in which every resource is uniquely addressable using a universal syntax. However, not all Web applications provide this type of resource identification.
Some existing Web applications encode the navigational state of a user's session within the URL (Uniform Resource Locator) that is sent over HTTP (HyperText Transfer Protocol). As a result, no two users will obtain the same URL even though they are viewing the same resource.
Other existing Web applications have the opposite problem, in which a single URL is used to represent many resources exposed through a Web page. This is the case in many recent AJAX (Asynchronous JavaScript and XML) based Web applications, in which the loaded Web browser URL is not changed even though the user requests and receives views of different resources exposed through the page. One example of such behavior may be observed when a user clicks to view an e-mail (electronic mail) message in the Gmail client provided by Google®. Even though the requested message is exposed to the user through the Web browser, the current URL loaded in the Web browser is not changed. Web applications that use server session state (e.g. a user identifier and/or other session information) may also result in mapping multiple resources to a single URL.
When exposed to either of the above described types of non-RESTful existing systems, social bookmarking systems do not perform as expected. Existing social bookmarking systems rely on the fact that a single URL represents a single resource on the Web. For Web sites in which a resource's URL is different for each visit, two users will never be able to socially bookmark the resource with the same URL. This prevents a social bookmarking application from understanding a Web page as a single resource in its folksonomy. Web sites using a single URL to expose multiple resources in a Web page will cause false social bookmarking calculations, resulting from the fact that the social bookmarking system believes two users have bookmarked the same resource, when in fact they have attempted to bookmark different resources exposed within a single Web page.
Existing social bookmarking systems use bookmarklets to determine information about a Web page currently loaded in a Web browser. Bookmarklets are standard Web browser hyperlinks containing JavaScript. When a user clicks on a hyperlink button or the like provided by a bookmarklet, the JavaScript of the bookmarklet executes to obtain information about the currently loaded Web page from the document object model (DOM) of the Web page. Such Web page information includes the URL of the Web page, a title of the Web page, and sometimes a description of the Web page. The bookmarklets for a social bookmarking service may be provided by the social bookmarking service. Bookmarklets perform social bookmarking operations, such as adding a currently loaded Web page to the user's social bookmarks, and/or adding a tag to the currently loaded Web page in the bookmarking system. Existing bookmarklets generate pop-up windows in the user interface providing a Web form hosted by the social bookmarking Web site. This Web form is often pre-filled with information about the currently loaded Web page. A user can then add tags into the pop-up window to categorize the currently loaded Web page, and click on a “submit” button or the like to submit the added tags to the social bookmarking Web site. Some social bookmarking Web sites provide Web browser plug-in that perform the same type of operations.
A shortcoming of existing systems related to social networking bookmarklets is the inability to obtain useful information from some Web sites regarding resources that they expose to the user, without changing the currently loaded Web page. For example, in some existing Web portals, the title and description for portlet resources within the portal Web page are defined by the portal theme, and not by the specific portlet. Similarly, when a user requests a map through a map generation Web site, the currently loaded Web page does not change when the map is loaded unless the user clicks on a “Link” option in the user interface. Accordingly, when the user attempts to set social bookmarks to resources exposed through such Web sites, different resources provided through a single Web page report the same title, and may have no available description. As a result, form fields in the bookmarklet generated pop-up window are pre-filled with the same information for multiple resources provided through the same Web page, without reflecting the specific resource currently being viewed.
For the above reasons, it would accordingly be desirable to have a new system for social bookmarking resources that does not rely on Web pages following the representational state transfer architectural style (REST), and that provides useful information regarding a resource exposed in a Web page without the user having to expressly link to the resource.